<?php
//Ultima verificacion: 13-10-2014 ; 21-11-2014 ; 20-02-2015
class M_timeline extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener las novedades ocurridas activas
	//Los registros se agrupan para que no muestre repetidos los resultados en caso de que se produzcan varias modificaciones seguidas en el mismo dia.
	function buscarActivos($restriccion=null, $limite=null){
		$consulta = $this->db->query("SELECT timeline.*,
											DATE_FORMAT(timeline.fechaTimelinePasado,'%d/%m/%Y %H:%i:%s') AS fechaTimelinePasadoFormateada, 
											DATE_FORMAT(timeline.fechaTimelinePasado,'%d/%m/%Y') AS fechaTimelinePasadoFormateada2,
											DATE_FORMAT(timeline.fechaTimelineFuturo,'%d/%m/%Y %H:%i:%s') AS fechaTimelineFuturoFormateada
									  FROM timeline
									  WHERE timeline.estado=1 $restriccion
									  GROUP BY timeline.idTablaOrigen, timeline.idRegistroOrigen, timeline.fechaTimelinePasado
									  ORDER BY timeline.idTimeline DESC
									  $limite");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos obtener las fechas donde ocurrieron novedades
	function buscarFechasActivas($restriccion=null, $limite=null){
		$consulta = $this->db->query("SELECT timeline.fechaTimelinePasado, DATE_FORMAT(timeline.fechaTimelinePasado,'%d/%m/%Y') AS fechaTimelinePasadoFormateada
									  FROM timeline
									  WHERE timeline.estado=1 $restriccion
									  GROUP BY timeline.fechaTimelinePasado
									  ORDER BY timeline.idTimeline DESC									  
									  $limite");
		return($consulta);
	}
	
	//Este metodo se utiliza para crear un registro en la tabla timeline de novedades
	function crear($tipoOperacion=null, $idTablaOrigen=null, $idRegistroOrigen=null, $idTablaDestino=null, $idRegistroDestino=null, $fechaTimelinePasado=null, $fechaTimelineFuturo=null, $estado=null){
		$this->db->query("INSERT INTO `timeline` (`idTimeline`,`tipoOperacion`,`idTablaOrigen`,`idRegistroOrigen`,`idTablaDestino`,`idRegistroDestino`,`fechaTimelinePasado`,`fechaTimelineFuturo`,`estado`) VALUES 
										     	 (NULL,".$this->db->escape($tipoOperacion).",".$this->db->escape($idTablaOrigen).",".$this->db->escape($idRegistroOrigen).",".$this->db->escape($idTablaDestino).",".$this->db->escape($idRegistroDestino).",".$this->db->escape($fechaTimelinePasado).",".$this->db->escape($fechaTimelineFuturo).",".$this->db->escape($estado).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para eliminar una novedad por ejemplo, cuando se elimina un destinatario de una notificacion.
	function eliminar2($idTablaDestino=null, $idRegistroDestino=null){
		$consulta = $this->db->query("UPDATE `timeline` 
									 SET `estado` = -1
									 WHERE `timeline`.`idTablaDestino` = " . $this->db->escape($idTablaDestino) . " AND 
									       `timeline`.`idRegistroDestino` = ". $this->db->escape($idRegistroDestino));
		return($this->db->affected_rows());
	}
}
?>